<?php
namespace app\common\model;

use think\Model;

class Member extends Model
{
    protected $autoWriteTimestamp =true;
    protected $type = [
        
        'create_time'  =>  'timestamp:Y/m/d H:i:s',
        'update_time'  =>  'timestamp:Y/m/d H:i:s',
    
    ];
    
    public function getHeadimgurlAttr($val){
        return translateOssImg($val);
    }
    
    /**
     * @desc 修改积分
     * @param $action 默认是1，为加积分，设置为-1为减积分
     * @param $number 变动的数量
     * @param $type  积分变动的类别 //获取积分方式，1签到，2购买，3分享，4收藏，5评论，6下载app，7新注册用户，8拉人注册,9推荐商品，他人点击成交后获得积分奖励
     * @param string $content //描述
     * @return bool
     */
    public function changePoint($number,$type,$action=1,$content='积分变动'){
        
        $user = $this;
        
        $points = new Points();
        
        if(!isset($number)||!isset($action)||!isset($type)){
            return false;//参数缺失
        }
        //积分不够就别干了
        if($user->pionts_num +$action*$number<0){
            return false;
        }
        $params =[
            'user_id'=>$this->id,
            'before_points'=>$user->pionts_num,//从用户的额外信息表里面拿现在的积分
            'number'=>$number,
            'after_points'=>$user->pionts_num +$action*$number,//判断是否大于0
            'type'=>$type,
            'action'=>$action,
            'content'=>$content
        ];
        $rt1 = $points->allowField(true)->save($params);
        
        if(!$rt1){
            return false;
        }
        
        $user->pionts_num +=$action*$number;//如果为正就加，如果为负就减
        $rt2 = $user->save();
        
        if(!$rt2){
            return false;
        }
        
        return true;
        
        
    }
    
    
    /**
     * @desc 修改金额
     * @param $action 默认是1，为加余额，设置为-1为减余额
     * @param $number 变动的数量
     * @param $type  金额变动的类别 //金额变动类型，1为销售收入，2提现，3为分销收入,4为充值
     * @param string $content //描述
     * @return bool
     * 提现的订单guid，就是订单id
     */
    public function changeAmount($number,$type,$action=1,$content='余额变动',$order_id,$widhDraw=null){
        
        $user = $this;
        $amount = new Amount();
        
        if(!isset($number)||!isset($action)||!isset($type)){
            return false;//参数缺失
        }
        
        //不够就别干了
        if($user->cashing_money +$action*$number<0){
            return false;
        }
        
        $params =[
            'user_id'=>$this->id,
            'before_total_amount'=>$user->cashing_money,//从用户的额外信息表里面拿现在的积分
            'amount'=>$number,
            'after_total_amount'=>$user->cashing_money +$action*$number,//判断是否大于0
            'type'=>$type,
            'action'=>$action,
            'content'=>$content,
            'order_id'=>$order_id,
            'widthDraw'=>$widhDraw
        ];
        $rt1 = $amount->allowField(true)->save($params);
        
        if(!$rt1){
            return false;
        }
        
        $user->cashing_money +=$action*$number;//如果为正就加，如果为负就减
        $rt2 = $user->save();
        if(!$rt2){
            return false;
        }
        
        return true;
        
        
    }
    

}